package com.ruoyi.st.service.impl;

import java.util.Collections;
import java.util.List;

import com.ruoyi.st.domain.query.AudienceQuery;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.st.mapper.StAudienceMapper;
import com.ruoyi.st.domain.StAudience;
import com.ruoyi.st.service.IStAudienceService;

/**
 * 观演人Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-11-16
 */
@Slf4j
@Service
public class StAudienceServiceImpl implements IStAudienceService 
{
    @Autowired
    private StAudienceMapper stAudienceMapper;

    /**
     * 查询观演人
     * 
     * @param id 观演人主键
     * @return 观演人
     */
    @Override
    public StAudience selectStAudienceById(Long id)
    {
        return stAudienceMapper.selectStAudienceById(id);
    }

    @Override
    public StAudience selectStAudienceListByUserIdAndId(AudienceQuery audienceQuery) {
        log.debug("传过来的观演人id和用户id: id={}, userId={}", audienceQuery.getId(), audienceQuery.getUserId());
        Long id = audienceQuery.getId();
        Long userId = audienceQuery.getUserId();
        StAudience stAudience = stAudienceMapper.selectStAudienceListByUserIdAndId(id, userId);
        log.debug("查询到的观演人信息: {}", stAudience);
        return stAudience;
    }

    /**
     * 查询观演人列表
     * 
     * @param stAudience 观演人
     * @return 观演人
     */
    @Override
    public List<StAudience> selectStAudienceList(StAudience stAudience)
    {
        return stAudienceMapper.selectStAudienceList(stAudience);
    }

    /**
     * 新增观演人
     * 
     * @param stAudience 观演人
     * @return 结果
     */
    @Override
    public int insertStAudience(StAudience stAudience)
    {
        return stAudienceMapper.insertStAudience(stAudience);
    }

    /**
     * 修改观演人
     * 
     * @param stAudience 观演人
     * @return 结果
     */
    @Override
    public int updateStAudience(StAudience stAudience)
    {
        return stAudienceMapper.updateStAudience(stAudience);
    }

    /**
     * 批量删除观演人
     * 
     * @param ids 需要删除的观演人主键
     * @return 结果
     */
    @Override
    public int deleteStAudienceByIds(Long[] ids)
    {
        return stAudienceMapper.deleteStAudienceByIds(ids);
    }

    /**
     * 删除观演人信息
     * 
     * @param id 观演人主键
     * @return 结果
     */
    @Override
    public int deleteStAudienceById(Long id)
    {
        return stAudienceMapper.deleteStAudienceById(id);
    }

    @Override
    public List<StAudience> selectStAudienceListByUserId(Long userId) {
        List<StAudience> result = stAudienceMapper.selectStAudienceListByUserId(userId);
        if (result != null) {
    for (StAudience audience : result) {
        log.debug("Audience data: id_number={}, id_type={}, name={}, phone={}",
                     audience.getIdNumber(), audience.getIdType(), audience.getName(), audience.getPhone());
    }
}
        return result;
    }
}
